﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Sistema.WF.Componentes.Controles;
using Sistema.WF.Componentes.UserControls;

namespace Sistema.WF.Componentes.FormulariosBase
{
    public partial class FRM_cadastro : FRM_pai
    {
        private enumStatusTelaCadastro _statusTela;
        public FRM_cadastro()
        {
            InitializeComponent();
            this.Habilita(false);
            _statusTela = enumStatusTelaCadastro.Pesquisa;
        }

        private void FRM_cadastro_Load(object sender, EventArgs e)
        {
            
        }
        protected virtual void LimparCampos()
        {
           throw new NotImplementedException();
        }
        private void CMD_sair_Click(object sender, EventArgs e)
        {
            this.Close();
            this.Dispose();
        }

        private void Habilita(bool valor)
        {
           
            TBC_cadastro.Enabled = valor;

            CMD_confirma.Enabled = valor;
            CMD_inserir.Enabled = !valor;
            CMD_excluir.Enabled = !valor;
            CMD_alterar.Enabled = !valor;
           
           
        }

        private void CMD_confirma_Click(object sender, EventArgs e)
        {
            switch (_statusTela)
            {
                case enumStatusTelaCadastro.Cadastro:
                    Cadastrar();
                    break;
                case enumStatusTelaCadastro.Alteracao:
                    Alterar();
                    break;
                case enumStatusTelaCadastro.Exclusao:
                    Excluir();
                    break;
                case enumStatusTelaCadastro.Pesquisa:
                    Pesquisa();
                    break;
                default:
                    break;
            }
        }

        private void CMD_inserir_Click(object sender, EventArgs e)
        {
            this.Habilita(true);
            _statusTela = enumStatusTelaCadastro.Cadastro;
            
        }

        private void CMD_alterar_Click(object sender, EventArgs e)
        {
            this.Habilita(true);
            _statusTela = enumStatusTelaCadastro.Alteracao;
        }

        private void CMD_excluir_Click(object sender, EventArgs e)
        {
            this.Habilita(true);
            _statusTela = enumStatusTelaCadastro.Exclusao;
        }

        private void CMD_pesquisa_Click(object sender, EventArgs e)
        {
            this.Pesquisa();
            this.Habilita(false);
            _statusTela = enumStatusTelaCadastro.Pesquisa;
        }

        protected virtual void Pesquisa()
        {
            
        }

        protected virtual void Excluir()
        {
            this.Habilita(false);
        }

        protected virtual void Alterar()
        {
            this.Habilita(false);
        }

        protected virtual void Cadastrar()
        {
            this.Habilita(false);
        }

    }

    public enum enumStatusTelaCadastro
    {
        Cadastro,
        Alteracao,
        Exclusao,
        Pesquisa
    }
}
